home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
v10n14.arc
/
FIELDSIZ.PRG
< prev
next >
Wrap
Text File
|
1991-07-11
|
1KB
|
47 lines
* PROGRAM: FIELDSIZ.PRG
* PURPOSE: Find the smallest size a character field can be
* without losing any current data.
*
* REMARKS: You can call this program either from the dot prompt
* or from inside another program.
*
* COMMAND: DO FIELDSIZ WITH 'FILENAME' (dBASE, FoxBASE+...)
* OR FIELDSIZ FILENAME if compiled with Clipper
PARAMETERS filename
CLEAR
SET TALK OFF
SET STATUS OFF
CLOSE DATABASES
SELECT 1
USE &filename
? "File: "+filename+".DBF"
? "Optimum structure:"
?
msavtot=0
maux=1
DO WHILE LEN(FIELD(maux))>0
IF TYPE(FIELD(maux))<>'C' && Check if the field is of Type "Char"
maux=maux+1 && If not, goto next field
LOOP
ENDIF
mtotal=0
mname=FIELD(maux)
GOTO TOP
DO WHILE .NOT. EOF()
IF LEN(TRIM(&mname))>mtotal
mtotal=LEN(TRIM(&mname))
ENDIF
SKIP
ENDDO
msaved=(LEN(&mname)-mtotal)*RECCOUNT()
msavtot=msavtot+msaved
msg=IIF(msaved>0," bytes to save"," no change on this field")
? RIGHT(SPACE(10)+TRIM(FIELD(maux)),11),mtotal,STR(msaved)+msg
maux=maux+1
ENDDO
?
? "Total number of bytes that can be saved: " + LTRIM(STR(msavtot))
CLOSE DATABASES
RETURN